package cn.zou.blog.service;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import cn.zou.blog.entry.Article;
import cn.zou.core.page.Page;

public interface ArticleService {
	/**
	 * 添加文章
	 * @param article
	 * @throws Exception 
	 */
	public void addArticle(Article article,HttpServletRequest request) throws Exception;
	/**
	 * 更新文章
	 * @param article
	 */
	public void updateArticleById(Article article,HttpServletRequest request)throws Exception;
	/**
	 * 根据id查询文章且不需要级联查询留言
	 * @param id
	 * @return
	 */
	public Article findByIdNotGuestBook(String id);
	/**
	 * 根据id查询文章且需要留言 前台方法
	 * @param id
	 * @return
	 */
	public Article findByIdAndGuestBook(String id);
	/**
	 * 根据id 删除文章
	 * @param id
	 */
	public void deleteArticleByid(String id,HttpServletRequest request);
	/**
	 * 根据标题或者文章主体内容来查询
	 * @param title
	 * @return
	 */
	public ArrayList<Article> findArticleByTitle(String titleOrcontant);
	/**
	 * 根据文章标题搜索
	 * @param page
	 */
	public Page<Article> findByTitle(Page page);
	/**
	 * 根据ID查询文章
	 * @param id
	 */
	public Article findById(String id);
	/**
	 * 更新文章状态
	 * @param id
	 * @param state
	 * @param request
	 */
	public void upadteStateArticle(String id, String state, HttpServletRequest request);
	/**
	 * 前端查询文章
	 * @param page 
	 * @param request 
	 * @param string2 
	 * @param string 
	 */
	public Page<Article> findArticles(Page<Article> page, HttpServletRequest request, String string, String string2);
	/**
	 * 在luncen中查询文章
	 * @param id
	 * @param request 
	 */
	public Article findByIdInLuncene(String id, HttpServletRequest request);
	/**
	 * 查询最新的5篇文章
	 * @return
	 */
	public List<Article> findnewArticle();
	
}
